package com.panopset.gui.container;

import java.awt.GridLayout;
import java.awt.LayoutManager;

import javax.swing.JScrollPane;

import com.panopset.gui.TTextArea;
import com.panopset.swing.FieldGui;

/**
 * JTextArea persistent container.
 *
 * @author Karl Dinwiddie
 *
 */
public final class PanTextArea extends PanField<JScrollPane> {

    /**
     * @param prompt
     *            Prompt.
     * @param toolTipText
     *            Tool tip text.
     * @param defaultValue
     *            Default value.
     */
    public PanTextArea(final String prompt, final String toolTipText,
            final String defaultValue) {
        super(prompt, toolTipText, defaultValue);
        setFieldGui(new FieldGui() {

            @Override
            public String getValue() {
                return getTextArea().getText();
            }

            @Override
            public void setValue(final String value) {
                getTextArea().setText(value);
            }
        });
    }

    @Override
    public JScrollPane createComponent() {
        return new JScrollPane(getTextArea());
    }

    private TTextArea ta;

    public TTextArea getTextArea() {
        if (ta == null) {
            ta = new TTextArea();
            ta.setToolTipText(ptoolTipText);
        }
        return ta;
    }
    @Override
    protected LayoutManager createLayout() {
        return new GridLayout(1, 1);
    }

    @Override
    protected boolean isValid(final String valueToCheck) {
        return true;
    }
}
